home *** CD-ROM | disk | FTP | other *** search
/ The AGA Experience 3 / AGA Experience Volume 3 (1997)(NFA - SAdENESS)[!].iso / software / utilities / graphics / gfxlab24 / arexxscripts / catalogmaker.rexx next >
OS/2 REXX Batch file  |  1995-05-31  |  9KB  |  241 lines

  1. /*                                                                */
  2. /*                GfxLab24 - Catalog-Maker                        */
  3. /*                                                                */
  4. /*  Script by Rodrigo Reyes, 1995.                                */
  5. /*  Should be used with GfxLab24 version 1.4 or +                 */
  6. /*                                                                */
  7.  
  8. /*  This ARexx script is devoted to the annoying task of making   */
  9. /*  catalogs for your pictures.                                   */
  10.  
  11. /*  To run it, simply indicate to the script some filenames or    */
  12. /*  file patterns :                                               */
  13. /*                                                                */
  14. /*      rx CatalogMaker.rexx dh0:pictures/#?.GIF dh1:hello.iff    */
  15. /*   or if you are running any Unix Shell or WildStar program:    */
  16. /*      rx CatalogMaker.rexx dh0:pictures/p*.gif dh1:hello.iff... */
  17. /*                                                                */
  18. /*  The script can accept any number of names or pattern.         */
  19. /*                                                                */
  20. /*  The default parameters for the catalog are :                  */
  21. /*  (You can change any of them by just specifying it in the      */
  22. /*  command line with a parameter, if needed. ie:                 */
  23. /*  rx CatalogMaker.rexx #?.GIF BASENAME mycat ROWS 6 COLUMNS 4   */
  24. /*  options can be anywhere in the command line                   */
  25. /*                                                                */
  26. /*  BASENAME : Name of the catalog that will be created. It will  */
  27. /*      be saved under the name BASENAME.#.jpeg, with "#" is the  */
  28. /*      index of the created catalog, 0 for the first, 1 for the  */
  29. /*      second, etc. Default is "Catalog"                         */
  30. /*                                                                */
  31. /*  NOTEXT : This is a flag, and require no paramater. If you     */
  32. /*      put this keyword on the command line, no text will be     */
  33. /*      added under the pictures. This is not set by default.     */
  34. /*                                                                */
  35. /*  ROWS : This option specify the number of rows of pictures the */
  36. /*      catalog will have. By default, it is set to 4, so that    */
  37. /*      4 pictures will be put in a single line.                  */
  38. /*                                                                */
  39. /*  COLUMNS : The number of columns the catalog picture will have.*/
  40. /*      The default is 4, so that 4 lines of pictures will be put */
  41. /*      in the catalog file                                       */
  42. /*                                                                */
  43. /*  IMAGEWIDTH : This option let you specify the width in pixel   */
  44. /*      for a picture sample. The default is 120.                 */
  45. /*                                                                */
  46. /*  IMAGEHEIGHT : As above, but this option is for the height in  */
  47. /*      pixel of the picture sample. The default is 120.          */
  48. /*                                                                */
  49. /*  HIGHQUALITY : This flag, if found in the command line, will   */
  50. /*      improve the quality of the rendered pictures, by          */
  51. /*      converting the bitmap picture to 24 bits, & scaling them  */
  52. /*      with highquality scale, before adding them in the catalog.*/
  53. /*      Of course, the original pictures won't be affected.       */
  54. /*                                                                */
  55.  
  56.  
  57.  
  58.          /* Address the GfxLab24 Arexx port */
  59.  
  60. ADDRESS GFXLAB24.0
  61. options results
  62.  
  63.          /* Put here your inits             */
  64.  
  65. BaseName = "Catalog"
  66. FontSize = 8
  67. MyFont = "topaz.font"
  68.  
  69. imagewidth = 120
  70. imageheight = 120
  71.  
  72. maxrow = 4
  73. maxcol = 4
  74.  
  75. row = 0
  76. col = 0
  77.  
  78. ImageIndex = 0
  79. arguments = ARG(1)
  80.  
  81. HighQuality = 0
  82.  
  83. PutSomeText = 1
  84.  
  85. dummy = Find(arguments,"NOTEXT")
  86. if (dummy>0) Then
  87.     Do
  88.         dummy = DelWord(arguments, dummy,1)
  89.         PutSomeText = 0
  90.     End
  91.  
  92. dummy = Find(arguments,"ROWS")
  93. if (dummy>0) Then
  94.     Do
  95.         maxrow = word(arguments, dummy+1)
  96.         dummy = DelWord(arguments, dummy,2)
  97.     End
  98.  
  99. dummy = Find(arguments,"COLUMNS")
  100. if (dummy>0) Then
  101.     Do
  102.         maxcol = word(arguments, dummy+1)
  103.         dummy = DelWord(arguments, dummy,2)
  104.     End
  105.  
  106. dummy = Find(arguments,"IMAGEWIDTH")
  107. if (dummy>0) Then
  108.     Do
  109.         imagewidth = word(arguments, dummy+1)
  110.         dummy = DelWord(arguments, dummy,2)
  111.     End
  112. dummy = Find(arguments,"IMAGEHEIGHT")
  113. if (dummy>0) Then
  114.     Do
  115.         imageheight = word(arguments, dummy+1)
  116.         dummy = DelWord(arguments, dummy,2)
  117.     End
  118. dummy = Find(arguments,"HIGHQUALITY")
  119. if (dummy>0) Then
  120.     Do
  121.         highquality = 1
  122.         dummy = DelWord(arguments, dummy,1)
  123.     End
  124.  
  125. dummy = Find(arguments,"BASENAME")
  126. if (dummy>0) Then
  127.     Do
  128.         BaseName = word(arguments, dummy+1)
  129.         dummy = DelWord(arguments, dummy,2)
  130.     End
  131.  
  132.  
  133. RealWidth = imagewidth + 5
  134. RealHeight = imageheight + 5
  135.  
  136. if (PutSomeText >0) Then
  137.     Do
  138.      RealWidth = imagewidth + 5
  139.      RealHeight = imageheight + FontSize + 6
  140.     End
  141.  
  142.          /* Print a message in GfxLab24 info window */
  143.  
  144. PrintInfo ''
  145. PrintInfo '"Beginning of the Catalog-Maker AREXX script"'
  146. PrintInfo '"Script by Rodrigo Reyes, 1995"'
  147. PrintInfo '"Creating catalog of 'maxrow'x'maxcol' pictures"'
  148.  
  149. GfxListIndex = 1    /* Scan all the names in the command line */
  150.                     /* that was given to the script, starting */
  151.                     /* with the value in 'GfxListIndex', until there */
  152.                     /* is no more names in command line       */
  153.                     /* (while the current name is not empty)  */
  154.  
  155. DO UNTIL word(arguments,GfxListIndex)=''
  156.  
  157.                     /* Get name from the command line */
  158.     GfxMyList = WORD(arguments, GfxListIndex)
  159.     GfxListIndex = GfxListIndex + 1
  160.  
  161.                 /* GetFromPattern is a GfxLab24 function that  */
  162.                 /* return a list of filenames corresponding to */
  163.                 /* the given argument. This argument should be */
  164.                 /* a pattern, but a single filename is ok and  */
  165.                 /* bug-proof.                                  */
  166.  
  167.     GetFromPattern GfxMyList
  168.     GfxMyList = result
  169.     if (WORD(GfxMyList,1)="ERROR") Then Exit
  170.     GfxsubListIndex = 1
  171.     DO UNTIL word(GfxMyList,GfxsubListIndex)=''
  172.         FileName = word(GfxMyList,GfxsubListIndex)
  173.         GfxsubListIndex = GfxsubListIndex +1
  174.  
  175.         PrintInfo '"Processing 'FileName '"'
  176.         Load FileName bank 4              /* Load the picture */
  177.         if result = "OK" then
  178.              DO
  179.                 if ((col<1) & (row<1)) Then
  180.                     Do
  181.                        PrintInfo '"Creating a new picture, size : 'maxrow*(imagewidth+5) ',' maxcol*(imageheight+5) '"'
  182.                        CreatePicture maxrow*(realwidth) maxcol*(realheight) 0 0 0 BANK 5
  183.                        if (result != "OK") Then PrintInfo '"'result'"'
  184.                     End
  185.  
  186.                         /* Add want you want here */
  187.  
  188.                PrintInfo '"Copying the brush..."'
  189.  
  190.                if (HighQuality>0) Then
  191.                    Do
  192.                       BitmapToRaw BANK 4
  193.                       Scale imagewidth imageheight BANK 4
  194.                    End
  195.  
  196.                CopyBrush 5 4 row*(realwidth) col*(realheight) imagewidth imageheight
  197.                PrintInfo result
  198.  
  199.                if (result = "OK") Then
  200.                 DO
  201.                    if (PutSomeText>0) Then
  202.                        Do
  203.                           CreatePicture ImageWidth FontSize+2 0 0 0 BANK 3
  204.                           Affiche = FileName;
  205.                           affiche = Right(affiche, Length(affiche)-LastPos("/",affiche))
  206.                           TextColor 255 255 255
  207.                           TextSize FontSize
  208.                           TextFont MyFont
  209.                           AddText Affiche 1 0 BANK 3
  210.                           CopyBrush 5 3 row*(realwidth) (col*realheight)+ImageHeight
  211.                        End
  212.                        else PrintInfo '"No text !"'
  213.                    row = row +1
  214.                    if (row = maxrow) Then
  215.                        Do
  216.                          row = 0
  217.                          col = col+1
  218.                        End
  219.                    if (col = maxcol) Then
  220.                        Do
  221.                          row = 0
  222.                          col = 0
  223.                          PrintInfo '"Saving 'BaseName'.'ImageIndex'.jpeg"'
  224.                          Save BaseName'.'ImageIndex'.jpeg' JPEG BANK 5
  225.                          ImageIndex = ImageIndex + 1
  226.                        End
  227.                         /* Free empty space for you script ... :)  */
  228.                 END
  229.                 else PrintInfo '"Error, skipping file..."'
  230.              END
  231.              else PrintInfo '"Skipping unrecognized file 'FileName'"'
  232.     END
  233. END
  234.  
  235. if ((row>0) | (col>0)) Then Save BaseName'.'ImageIndex'.jpeg' JPEG BANK 5
  236. ClearBank Bank 5
  237. ClearBank Bank 4
  238. PrintInfo '"End of the Catalog-Maker Script"'
  239.  
  240.  
  241.